package com.nf.health.app.activity.my.medicine;

import android.os.Bundle;


import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.favorite.FavoritePoiInfo;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.nf.health.app.R;
import com.nf.health.app.activity.global.BaseActivity;
import com.nf.health.app.utils.ViewUtil;

import butterknife.Bind;
import butterknife.ButterKnife;

/**
 * Created by Administrator on 2017/5/8/008.
 * http://blog.csdn.net/crazy1235/article/details/43377545
 * 药店
 */public class MyMedicineActivity extends BaseActivity {//GeocodeSearch.OnGeocodeSearchListener
    @Bind(R.id.bmapView)
    com.baidu.mapapi.map.MapView mp_view;
   /*
    *  定位SDK核心类
    */
    private LocationClient locationClient;
    /**
     * 定位监听
     */
    public MyLocationListenner myListener = new MyLocationListenner();

    /**
     * 百度地图对象
     */
    private BaiduMap baiduMap;

    boolean isFirstLoc = true; // 是否首次定位
    BitmapDescriptor mCurrentMarker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在使用SDK各组件之前初始化context信息，传入ApplicationContext
        //注意该方法要再setContentView方法之前实现
        setTitleBar(R.layout.titlebar_base);
        SDKInitializer.initialize(getApplicationContext());

        setContent(R.layout.activity_my_medicine);
        ButterKnife.bind(this);
        ViewUtil.setText(this, R.id.titlebar_title_tv, "药店");
        FavoritePoiInfo info = new FavoritePoiInfo();
        info.poiName("yuyahaho");
        //获取百度地图对象
        baiduMap = mp_view.getMap();
//        // 开启定位图层
//        baiduMap.setMyLocationEnabled(true);
//        /**
//         * 定位初始化
//         */
//        //声明定位SDK核心类
//        locationClient = new LocationClient(this);
//        //注册监听
//        locationClient.registerLocationListener(myListener);
//        //定位配置信息
//        LocationClientOption option = new LocationClientOption();
//        option.setOpenGps(true); // 打开gps
//        option.setCoorType("bd09ll"); // 设置坐标类型
//        option.setScanSpan(1000);//定位请求时间间隔
//        locationClient.setLocOption(option);
//        //开启定位
//        locationClient.start();



        // 修改为自定义marker
//        mCurrentMarker = BitmapDescriptorFactory.fromResource(R.drawable.iv_location);
//        baiduMap.setMyLocationConfigeration(new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, mCurrentMarker));



        double lat = 34.7466;
        double lng = 113.625367;
        loadLatLogPosition(lat,lng);
        addMyOverLay();




    }

    private void loadLatLogPosition( double lat,double lng){
        try {
//            public static final LatLng BEIJING = new LatLng(39.90403, 116.407525);// 北京市经纬度
//            public static final LatLng ZHONGGUANCUN = new LatLng(39.983456, 116.3154950);// 北京市中关村经纬度
//            public static final LatLng SHANGHAI = new LatLng(31.238068, 121.501654);// 上海市经纬度
//            public static final LatLng FANGHENG = new LatLng(39.989614, 116.481763);// 方恒国际中心经纬度
//            public static final LatLng CHENGDU = new LatLng(30.679879, 104.064855);// 成都市经纬度
//            public static final LatLng XIAN = new LatLng(34.341568, 108.940174);// 西安市经纬度
//            public static final LatLng ZHENGZHOU = new LatLng(34.7466, 113.625367);// 郑州市经纬度

            LatLng cenpt = new LatLng(lat,lng);
            //定义地图状态
            MapStatus mMapStatus = new MapStatus.Builder()
                    .target(cenpt)
                    .zoom(18)
                    .build();
            //定义MapStatusUpdate对象，以便描述地图状态将要发生的变化
            MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
            //改变地图状态
            baiduMap.setMapStatus(mMapStatusUpdate);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    void addMyOverLay() {
//        locationOverlay = new LocationOverLay(MainActivity.this, mMapView);
//        overlays = baiduMap.getOverlays();
//        Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
//                R.drawable.location);
//        locationOverlay.setBitmap(bitmap);
//        overlays.add(locationOverlay);
        double lat = 34.7466;
        double lng = 113.625367;
        LatLng point = new LatLng(lat, lng);

        // 构建markerOption，用于在地图上添加marker
        OverlayOptions options = new MarkerOptions()//
                .position(point)// 设置marker的位置
                .icon( BitmapDescriptorFactory.fromResource(R.drawable.iv_location_map))// 设置marker的图标
                .zIndex(9)// 設置marker的所在層級
                .draggable(true);// 设置手势拖拽
        // 在地图上添加marker，并显示
        baiduMap.addOverlay(options);
    }

    /**
     * 定位SDK监听函数
     */
    public class MyLocationListenner implements BDLocationListener {

        @Override
        public void onReceiveLocation(BDLocation location) {
            // map view 销毁后不在处理新接收的位置
            if (location == null || mp_view == null) {
                return;
            }
            MyLocationData locData = new MyLocationData.Builder()
                    .accuracy(location.getRadius())
                    // 此处设置开发者获取到的方向信息，顺时针0-360
                    .direction(100).latitude(location.getLatitude())
                    .longitude(location.getLongitude()).build();
            baiduMap.setMyLocationData(locData);
            if (isFirstLoc) {
                isFirstLoc = false;
                LatLng ll = new LatLng(location.getLatitude(),
                        location.getLongitude());
                MapStatus.Builder builder = new MapStatus.Builder();
                builder.target(ll).zoom(18.0f);
                baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
            }
        }

        public void onReceivePoi(BDLocation poiLocation) {
        }
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在activity执行onDestroy时执行mMapView.onDestroy()，实现地图生命周期管理
        mp_view.onDestroy();
    }
    @Override
    protected void onResume() {
        super.onResume();
        //在activity执行onResume时执行mMapView. onResume ()，实现地图生命周期管理
        mp_view.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
        //在activity执行onPause时执行mMapView. onPause ()，实现地图生命周期管理
        mp_view.onPause();
    }


    /**
     * 初始化AMap对象
     */
//    private void init(DrugStoreBean.ListBean listBean) {
//        if (aMap == null) {
//            aMap = map_view.getMap();
//        }
////        //以下是显示自己添加的
////        double  lat = amapLocation.getLatitude();
////        double lon = amapLocation.getLongitude();
////        // 设置当前地图显示为当前位置
//        double longitude = 0.0,latitude = 0.0;
//        try {
//            longitude = Double.parseDouble(listBean.getLon());
//            latitude = Double.parseDouble(listBean.getLat());
//        } catch (NumberFormatException e) {
//            e.printStackTrace();
//        }
//        com.amap.api.maps.model.LatLng ZHENGZHOU = new com.amap.api.maps.model.LatLng(latitude, longitude);
//        CameraUpdate newCameraPosition = CameraUpdateFactory.newCameraPosition(new CameraPosition(
//                ZHENGZHOU, 18, 30, 30));
//        aMap.moveCamera(newCameraPosition);
//        // aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ZHENGZHOU, 19));
//        com.amap.api.maps.model.MarkerOptions markerOptions = new com.amap.api.maps.model.MarkerOptions();
//        markerOptions.position(ZHENGZHOU);
//        markerOptions.title("当前位置");
//        markerOptions.visible(true);
//
//        //自定义定位的小图片
//        //BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_delete_pic));
//        //系统的默认的小图片
//        com.amap.api.maps.model.BitmapDescriptor bitmapDescriptor = com.amap.api.maps.model.BitmapDescriptorFactory.defaultMarker(com.amap.api.maps.model.BitmapDescriptorFactory.HUE_RED);
//        markerOptions.icon(bitmapDescriptor);
//        aMap.addMarker(markerOptions);
//    }

}
